﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ITProject.Repository.Abstract;
using ITProject.Repository.Concrete;
using ITProject.Domain.Entities;
using Ninject;
using System.Web.Mvc;

namespace ITProject.WebUI.Infrastructure.HtmlHelpers
{
    /// <summary>
    /// Klasa odpowiadająca rozszrzeniu klasy HtmlHelper służąca do wyciąganiu informacji o użytkowniku w Layoucie.
    /// Autor: Jakub Szatkowski
    /// </summary>
    public static class UserHelper
    {   
        
        static IUserRepository userRepo = new UserRepository();
        
        /// <summary>
        /// Metoda wyświetlająca liczbę nieprzeczytanych wiadomości danego użytkownika.
        /// Autor: Jakub Szatkowski
        /// Modified by Gajes
        /// </summary>
        /// <param name="userName">Nazwa użytkownika do pobrania liczby wiadomości.</param>
        /// <returns>Liczba nieprzeczytanych wiadomości.</returns>
        public static int UnreadedMessages(this HtmlHelper htmlHelp, string userName)
        {
            User user = userRepo.GetUserByLogin(userName);
            //ustawiamy date ostatniej wizyty
            userRepo.SetUserLastVisitDate(user);
            return userRepo.GetUnreadMessages(user);
        }

        /// <summary>
        /// Służy do pobrania z bazy ścieżki avataru użytkownika.Nie ścieżki tylko nazwy
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public static string GetAvatarPath(this HtmlHelper htmlHelp, string userName)
        {
            return userRepo.GetAvatarByLogin(userName);

        }
        /// <summary>
        /// Funkcja zwraca ilosc stron do wyswietlenia dla uzytkownika
        /// </summary>
        /// <returns></returns>
        public static int GetUserSite(this HtmlHelper htmlHelp)
        {
            return userRepo.getCountSite();
        }
    }
}